It is often desired to extract specific information from a database, and specifically to summarize a large amount of data in the database and present the summarized data to a user in a lucid way. Such data processing is normally carried out by a computer, and may require significant memory capability and processing power of the computer. The data processing may aim at creating a large data structure commonly known as a multidimensional cube, which in turn may be accessed by the user to explore the data of the database, for example by visualizing selected data in pivot tables or graphically in 2D and 3D charts. An example of an efficient algorithm for creating such a multidimensional cube is known from U.S. Pat. No. 7,058,621, which is incorporated herein by reference.
This prior art algorithm, like many other algorithms that operate on data in a database, involves a sequential chain of main calculations, in which the result of one main calculation is used an input data by a subsequent main calculation. For example, in the context of U.S. Pat. No. 7,058,621, the data records in the database is read into primary memory, whereupon a user may select one or more variables, and optionally a value or range of values for each such variable, thereby causing the algorithm to extract a corresponding subset of the data records in the database. The extracted subset forms an intermediate result. The multidimensional cube is then calculated by evaluating a selected mathematical function on the extracted subset, wherein the evaluation of the mathematical function is made based on a selected set of calculation variables, and wherein the dimensions of the cube are given by a selected set of classification variables.
Although the prior art algorithm is efficient, it may still need to carry out a large number of operations to create the multidimensional cube, especially if large amounts of data are to be analyzed. In such situations, the algorithm may set undesirably high requirements on the processing hardware and/or present a calculation time that is undesirably long.